home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
- # Fallback in case nothing else works. Look for vmlinu[xz] file in root and
- # /boot, see if there is a matching initrd, and wing it.
- . /usr/share/os-prober/common.sh
- set -e
-
- partition="$1"
- bootpart="$2"
- mpoint="$3"
- type="$4"
-
- mappedpartition=$(mapdevfs "$partition" 2>/dev/null) || mappedpartition="$partition"
-
- exitcode=1
- for kernpat in /vmlinuz /vmlinux /boot/vmlinuz /boot/vmlinux "/boot/vmlinuz*" \
- "/boot/vmlinux*" "/vmlinuz*" "/vmlinux*"; do
- if echo "$kernpat" | grep -q boot/; then
- kernbootpart=$bootpart
- else
- kernbootpart=$partition
- fi
- for kernfile in $(eval ls $mpoint$kernpat 2>/dev/null); do
- kernbasefile=$(echo "$kernfile" | sed "s!^$mpoint!!")
- if [ -f "$kernfile" ] && [ ! -L "$kernfile" ]; then
- initrdname=$(echo "$kernfile" | sed "s/vmlinu[zx]/initrd\*/")
- foundinitrd=0
- for initrd in $(eval ls $initrdname 2>/dev/null); do
- if [ -f "$initrd" ] && [ ! -L "$initrd" ]; then
- initrd=$(echo "$initrd" | sed "s!^$mpoint!!")
- result "$partition:$kernbootpart::$kernbasefile:$initrd:root=$mappedpartition"
- exitcode=0
- foundinitrd=1
- fi
- done
- if [ "$foundinitrd" = 0 ]; then
- result "$partition:$kernbootpart::$kernbasefile::root=$mappedpartition"
- exitcode=0
- fi
- fi
- done
- done
- exit $exitcode
-